﻿using System;
using System.Collections.Generic;
using System.Data;

namespace SistemaCarros.Entidades
{
    [Serializable]
    public class Proprietario
    {
        public int Id { get; set; }

        public string Nome { get; set; }
        public string RG { get; set; }
        public string CPF { get; set; }
        public string Endereco { get; set; }
        public string Telefone { get; set; }
        public string Email { get; set; }
        public string TipoChn { get; set; }

        public DateTime DataNascimento { get; set; }

        public List<Proprietario> Carregar()
        {
            string comandoSQL = "SELECT id, nome, rg, cpf, endereco, telefone, email, tipo_cnh, data_nascimento FROM proprietarios";
            DataSet ds = Db.ExecutarSQL(comandoSQL);
            List<Proprietario> lst = new List<Proprietario>();

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                lst.Add(new Proprietario()
                {
                    Id = Convert.ToInt32(dr["id"].ToString()),
                    Nome = dr["nome"].ToString(),
                    RG = dr["rg"].ToString(),
                    CPF = dr["cpf"].ToString(),
                    Endereco = dr["endereco"].ToString(),
                    Telefone = dr["telefone"].ToString(),
                    Email = dr["email"].ToString(),
                    TipoChn = dr["tipo_cnh"].ToString(),

                    DataNascimento = Convert.ToDateTime(dr["data_nascimento"].ToString())
                });
            }

            return lst;
        }

        public void Salvar()
        {
            string comandoSQL = "INSERT INTO proprietarios VALUES (@id, '@nome', '@rg', '@cpf', '@endereco', '@telefone', '@email', '@data_nascimento', '@tipo_cnh');";
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());
            comandoSQL = comandoSQL.Replace("@nome", Nome);
            comandoSQL = comandoSQL.Replace("@rg", RG);
            comandoSQL = comandoSQL.Replace("@cpf", CPF);
            comandoSQL = comandoSQL.Replace("@endereco", Endereco);
            comandoSQL = comandoSQL.Replace("@telefone", Telefone);
            comandoSQL = comandoSQL.Replace("@email", Email);
            comandoSQL = comandoSQL.Replace("@data_nascimento", DataNascimento.ToString("yyyy-MM-dd"));
            comandoSQL = comandoSQL.Replace("@tipo_cnh", TipoChn);

            Db.ExecutarComando(comandoSQL);
        }
        public void Excluir()
        {
            string comandoSQL = "DELETE FROM proprietarios WHERE id = @id;";
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());

            Db.ExecutarComando(comandoSQL);
        }
        public void CarregarDados()
        {
            string comandoSQL = "SELECT nome, rg, cpf, endereco, telefone, email, data_nascimento, tipo_cnh FROM proprietarios WHERE id = @id;";
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());

            DataSet ds = Db.ExecutarSQL(comandoSQL);

            DataRow dr = ds.Tables[0].Rows[0];
            Nome = dr["nome"].ToString();
            RG = dr["rg"].ToString();
            CPF = dr["cpf"].ToString();
            Endereco = dr["endereco"].ToString();
            Telefone = dr["telefone"].ToString();
            Email = dr["email"].ToString();
            DataNascimento = Convert.ToDateTime(dr["data_nascimento"].ToString());
            TipoChn = dr["tipo_cnh"].ToString();
        }
        public void Editar()
        {
            string comandoSQL = "UPDATE proprietarios SET nome = '@nome', rg = '@rg', cpf = '@cpf', endereco = '@endereco', telefone = '@telefone', ";
            comandoSQL += "email = '@email', data_nascimento = '@data_nascimento', tipo_cnh = '@tipo_cnh' WHERE id = @id;";
            comandoSQL = comandoSQL.Replace("@nome", Nome);
            comandoSQL = comandoSQL.Replace("@rg", RG);
            comandoSQL = comandoSQL.Replace("@cpf", CPF);
            comandoSQL = comandoSQL.Replace("@endereco", Endereco);
            comandoSQL = comandoSQL.Replace("@telefone", Telefone);
            comandoSQL = comandoSQL.Replace("@email", Email);
            comandoSQL = comandoSQL.Replace("@data_nascimento", DataNascimento.ToString("yyyy-MM-dd"));
            comandoSQL = comandoSQL.Replace("@tipo_cnh", TipoChn);
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());

            Db.ExecutarComando(comandoSQL);
        }
    }
}